
[dbo].[sp_asi_Discussions]
CREATE PROCEDURE [dbo].[sp_asi_Discussions]
(@POST_SEQ_1 int,
@TOPIC_SEQ_2 int,
@FORUM_SEQ_3 int,
@COMMUNITY_SEQ_4 int,
@POST_TITLE_5 varchar(80),
@TREE_LOCATION_6 varchar(255),
@ID_7 varchar(10),
@ANONYMOUS_FLAG_8 bit,
@DATE_STORED_9 datetime)
AS
DECLARE @find varchar(255)
DECLARE @length int
DECLARE @thread_num int
DECLARE @date_last_post datetime
DECLARE @post_count int
if @TOPIC_SEQ_2 = 0
BEGIN
exec sp_asi_GetCounter2 'Cmty_Discussion_Topics', @TOPIC_SEQ_2 output
SELECT @TREE_LOCATION_6 = NULL
SELECT @date_last_post = @DATE_STORED_9
SELECT @post_count = 1
END
else
BEGIN
IF @TREE_LOCATION_6 IS NULL
SELECT @TREE_LOCATION_6 = '000'
ELSE IF @TREE_LOCATION_6 = ''
SELECT @TREE_LOCATION_6 = '000'
SELECT @length = LEN(@TREE_LOCATION_6)-3
SELECT @find = SUBSTRING(@TREE_LOCATION_6,1,@length) + 'zzz'
SELECT @TREE_LOCATION_6 = MAX(TREE_LOCATION) FROM Cmty_Discussion_Posts WHERE TOPIC_SEQ = @TOPIC_SEQ_2 AND TREE_LOCATION < @find
SELECT @thread_num = CAST(SUBSTRING(@TREE_LOCATION_6,@length+1,3) AS int)
SELECT @TREE_LOCATION_6 = SUBSTRING(@TREE_LOCATION_6,1,@length)
if @thread_num < 999
SELECT @thread_num = @thread_num + 1
if @thread_num < 10
SELECT @TREE_LOCATION_6 = RTRIM(@TREE_LOCATION_6 + '00' + CAST(@thread_num AS char))
else
BEGIN
if @thread_num < 100
SELECT @TREE_LOCATION_6 = RTRIM(@TREE_LOCATION_6 + '0' + CAST(@thread_num AS char))
else
SELECT @TREE_LOCATION_6 = RTRIM(@TREE_LOCATION_6 + CAST(@thread_num AS char))
END
if @TREE_LOCATION_6 IS NULL
SELECT @TREE_LOCATION_6 = '001'
SELECT @date_last_post = NULL
SELECT @post_count = NULL
END
INSERT INTO Cmty_Discussion_Posts
( POST_SEQ,
TOPIC_SEQ,
FORUM_SEQ,
COMMUNITY_SEQ,
POST_TITLE,
TREE_LOCATION,
ID,
ANONYMOUS_FLAG,
DATE_STORED,
STATUS,
DATE_LAST_POST,
POST_COUNT)
VALUES
( @POST_SEQ_1,
@TOPIC_SEQ_2,
@FORUM_SEQ_3,
@COMMUNITY_SEQ_4,
@POST_TITLE_5,
@TREE_LOCATION_6,
@ID_7,
@ANONYMOUS_FLAG_8,
@DATE_STORED_9,
'ACT',
@date_last_post,
@post_count)
if @post_count IS NULL
UPDATE Cmty_Discussion_Posts SET DATE_LAST_POST = @DATE_STORED_9, POST_COUNT = POST_COUNT + 1
WHERE TOPIC_SEQ = @TOPIC_SEQ_2 AND TREE_LOCATION IS NULL
GO
GRANT EXECUTE ON [dbo].[sp_asi_Discussions] TO [IMIS]
GO